home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 15
/
Aminet 15 - Nov 1996.iso
/
Aminet
/
disk
/
cdrom
/
Atapi_PnP300.lha
/
atapi_pnp300
/
developer_kit
/
docs
/
Developer.readme
< prev
next >
Wrap
Text File
|
1996-07-16
|
3KB
|
117 lines
CONSIGLI PER UNA BUONA PROGRAMMAZIONE DEL
cd.device Atapi Plug'n Play
---------------------------
Georg Campana & Marco Campinoti
Vi diamo qui alcuni consigli per una corrtta programmazione
del ns device :
- L'unità 0 corrisponde sempre alla prima periferica del tipo atapi
nella catena del bus ide .
Quindi collegando due unità atapi il master sarà l'unità 0 ,
e lo slave l'unità 1 .
- I comandi relativi alla riproduzione di tracce Audio non
sono ancora implementati , ma lo saranno nelle prossime versioni .
Vi consigliamo quindi di tentarne l'uso nei Vostri programmi gestendo
però l'errore ritornato (CDERR_NOCMD) , in caso di insuccesso passate
all'uso del comando CD_SCSI_DIRECT .
Esempio :
.....
.....
.....
ioreq->io_Command = CD_PLAYLSN ;
ioreq->io_Offset = 94360;
ioreq->io_Length = 9750;
DoIO (ioreq);
if(error = ioreq->io_Error) /* c'è un errore */
{
if(error == CDERR_NOCMD) /* comando non esiste */
{
.....
..... /* prepara struttura SCSICmd */
.....
ioreq->io_Command = CD_SCSI_DIRECT ;
ioreq->io_Data = &scsicmd ; /* struttura SCSICmd */
ioreq->io_Length = sizeof( struct SCSICmd ) ;
DoIO (ioreq);
}
else
{
/* Altro errore */
}
}
else
{
/* Il comando è implementato */
}
......
......
Tra le altre cose facendo in questo modo i propri programmi gireranno
alla perfezione anche sui CD³² ed altri cd.device che seguono i comandi
I/O Commodore .
- Esiste la possibilità di riconoscere se il device con cui si tratta è del
tipo ATAPI . Per questo scopo è stato implementato il comando
CD_ATAPI_IDENTIFY che ritorna 4 bytes identificativi del produttore
del device .
Esempio :
.....
.....
.....
ioreq->io_Command = CD_ATAPI_IDENTIFY ; /* cmd da inviare */
ioreq->io_Lenght = 0 ; /* deve essere 0 !! */
DoIO(ioreq) ;
if(error = ioreq->io_Error) /* non è un cd.device atapi */
else
{
id = (ULONG)ioreq->io_Data ; /* contiene 'CD++' */
/* OK è Atapi */
.....
.....
}
Invitiamo gli intraprendenti programmatori di device del tipo
cd.device a implementare questo comando inserendo il loro
identificativo di 4 lettere in io_Data ( direttamente ,
come se fosse una ULONG e non un APTR ).
- Essendo di mentalità aperta , invitiamo tutti a inviarci le loro
realizzazioni e/o consigli e se dovessimo trovare interessante
la vostra applicazione non esiteremo a includerla nella prossima
release del pacchetto .
Buona programmazione a tutti